home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Games Collection 1
/
software vault.zip
/
software vault
/
CDR10
/
YICN23.ZIP
/
DEMO
/
SOURCE.ZIP
/
YAKDEMO.CPP
< prev
Wrap
C/C++ Source or Header
|
1993-02-28
|
10KB
|
218 lines
#include "yaklib.h"
#include "yakpal.h"
#include "yakwin.h"
#include "yakfont.h"
#include "yakscrol.h"
#include "yakpanel.h"
#include "xrect.h"
#include <conio.h>
#include <string.h>
#include <alloc.h>
#define C_QUIT 1
#define C_ICON 2
#define C_ANIMICON 3
#define C_ANIMAP_REG 4
#define C_ANIMAP_FAST 5
#define C_MOUSE_JSTCK 6
#define C_WINDOWS 7
#define C_GADGETS 8
#define C_YAKLIBS 9
#define C_SOUNDS 10
#define C_PALETTES 11
#define C_FONTS 12
#define C_SUPPORT 13
#define C_BUTTONPRESS 14
#define C_LABELPRESS 15
#define C_AFTER 16
void stars(void);
void iconDemo(void);
void animDemo(void);
void amapDemo(void);
void beetDemo(void);
yakLib myYakLib("yakdemo");
yakLib sb1Lib("yakdemo");
yakScroller buttonScroller(10,10,110,100, (char *)myYakLib.loadToMem("button.txt"));
yakScroller labelScroller(20,20,120,110, (char *)myYakLib.loadToMem("label.txt"));
yakScroller myYakScroller(0,0,210,111, (char *)myYakLib.loadToMem("welcome.txt"));
yakPanel newYakPanel(0,0,100,100);
yakPanel mainMenu(0,0,110,200);
yakFont myYakFont("6x8b.fnt", &myYakLib);
yakPalette myYakPalette("standard.ypl", &myYakLib);
icon yakLogo;
void resetScreen(void)
{
static char * adjectives[8] = {"power.", "compatibility.", "versatility.", "usefulness.",
"cost.", "artistry.", "value.", "simplicity."};
static int sloganCounter;
mouse.hide();
char slogan[80];
strcpy(slogan, "The difference is...");
strcat(slogan, adjectives[sloganCounter++ % 8]);
x_set_mode(0,340);
x_rect_fill(0,0,320,200,VisiblePageOffs,0);
myYakFont.use();
myYakPalette.put();
yakLogo.showMasked(134,30,VisiblePageOffs);
x_printf(212 - (strlen(slogan)*CharWidth/2), 80, VisiblePageOffs, 15, slogan);
yakWindow::drawAll();
mainMenu.shuffleToTop();
yakWindow::activeWindow = &mainMenu;
mouse.show();
}
void main(int argCount, char ** argVector)
{
x_set_mode(0,340);
x_text_init();
yakLogo.load("yax.yak", icon::normal, &myYakLib);
stars();
resetScreen();
strcpy(myYakScroller.title, "Welcome!");
myYakScroller.activate(50,50);
strcpy(mainMenu.title, "Main Menu");
mainMenu.myFlags &= ~(yakWindow::isCloseable | yakWindow::isDraggable);
mainMenu.add(new gadgetNode(new label(2,10,'Q', C_QUIT, "Quit demo", 15, 0),
new gadgetNode(new label(2,20,'!', C_ICON, "Icons", 15, 0),
new gadgetNode(new label(2,30,'!', C_ANIMICON, "Animicons", 15, 0),
new gadgetNode(new label(2,40,'!', C_ANIMAP_REG, "Animaps (regular)", 15, 0),
new gadgetNode(new label(2,50,'!', C_ANIMAP_FAST, "Animaps (smart)", 15, 0),
new gadgetNode(new label(2,60,'!', C_MOUSE_JSTCK, "Mouse/Jstick/Kbd", 15, 0),
new gadgetNode(new label(2,70,'!', C_WINDOWS, "Windows",15, 0),
new gadgetNode(new label(2,80,'!', C_GADGETS, "Gadgets", 15, 0),
new gadgetNode(new label(2,90,'!', C_YAKLIBS, "yakLibs", 15, 0),
new gadgetNode(new label(2,100,'!',C_SOUNDS, "Sound Support", 15,0),
new gadgetNode(new label(2,110,'!',C_PALETTES, "Palettes", 15, 0),
new gadgetNode(new label(2,120,'!',C_FONTS, "Fonts", 15, 0),
new gadgetNode(new label(2,130,'!',C_SUPPORT, "Support Programs", 15, 0),
new gadgetNode(new label(2,140,'!',C_AFTER, "Afterword", 15,0),
NULL)))))))))))))));
strcpy(newYakPanel.title, "Demo yakPanel!");
newYakPanel.x = 170;
newYakPanel.y = 50;
newYakPanel.add(new gadgetNode(new pSwitch(2,10,'!',"light",icon::normal, &myYakLib),
new gadgetNode(new pSwitch(18,10,'!',"light", icon::normal, &myYakLib),
new gadgetNode(new pSwitch(34,10,'!',"light", icon::normal, &myYakLib),
new gadgetNode(new pSwitch(49,10,'!',"toggl", icon::normal, &myYakLib),
new gadgetNode(new pSwitch(65,10,'!',"toggl", icon::normal, &myYakLib),
new gadgetNode(new pSwitch(81,10,'!',"toggl", icon::normal, &myYakLib),
new gadgetNode(new pSwitch(2,60, '!',"grumjug", icon::normal, &myYakLib, gadget::touchPad),
new gadgetNode(new slider(2,26,50,10,0,100),
new gadgetNode(new slider(2,37,50,15,0,100,36,10,47),
new gadgetNode(new button(2,80,'1',C_BUTTONPRESS, "button", icon::normal, &myYakLib),
new gadgetNode(new label(35,85,'2',C_LABELPRESS, "Press Me!", 1, 47),
NULL))))))))))));
mainMenu.open();
mouse.init();
resetScreen();
int command = 0;
while (command != C_QUIT)
{
if (argVector[1][0] == '+')
x_bgprintf(2,180,VisiblePageOffs,15,0,"Free Mem: %ld ",coreleft());
command = yakWindow::advance();
switch(command)
{
case C_BUTTONPRESS: buttonScroller.shuffleToTop(); break;
case C_LABELPRESS : labelScroller.shuffleToTop(); break;
case C_ICON : mouse.hide();
myYakScroller.newText(myYakLib.loadToMem("icon.txt"));
strcpy(myYakScroller.title, "The Icon class");
myYakScroller.activate(50,50);
iconDemo();
resetScreen();
mouse.show();
break;
case C_ANIMICON : mouse.hide();
myYakScroller.newText((char *)myYakLib.loadToMem("animicon.txt"));
strcpy(myYakScroller.title, "The Animicon Class");
myYakScroller.activate(50,50);
animDemo();
resetScreen();
mouse.show();
break;
case C_ANIMAP_REG : mouse.hide();
myYakScroller.newText((char *)myYakLib.loadToMem("animap.txt"));
strcpy(myYakScroller.title, "Animaps (regular)");
myYakScroller.activate(50,50);
amapDemo();
resetScreen();
mouse.show();
break;
case C_ANIMAP_FAST : mouse.hide();
myYakScroller.newText((char *)myYakLib.loadToMem("beetdemo.txt"));
strcpy(myYakScroller.title, "Animaps (smart)");
myYakScroller.activate(50,50);
beetDemo();
resetScreen();
mouse.show();
break;
case C_MOUSE_JSTCK : myYakScroller.newText((char *)myYakLib.loadToMem("mjstk.txt"));
strcpy(myYakScroller.title, "Mouse/Joystick/Keyboard");
myYakScroller.activate(50,50);
break;
case C_WINDOWS : myYakScroller.newText((char *)myYakLib.loadToMem("windows.txt"));
strcpy(myYakScroller.title, "yakWindows");
myYakScroller.activate(50,50);
for (int windowCounter = 0; windowCounter < 5; ++windowCounter)
{
yakScroller * newScroller = new yakScroller(100+random(50), 50+random(50), 250+random(50), 120 + random(50), (char *)myYakLib.loadToMem("windemo.txt"));
strcpy(newScroller->title, "Demo Window!");
newScroller->titleBarColor = random(256);
newScroller->textColor = random(256);
newScroller->boxColor = random(256);
newScroller->myFlags |= yakWindow::isTemporary;
newScroller->open();
}
break;
case C_GADGETS : myYakScroller.newText((char *)myYakLib.loadToMem("gadgets.txt"));
strcpy(myYakScroller.title, "Gadgets");
myYakScroller.activate(50,50);
newYakPanel.shuffleToTop();
break;
case C_YAKLIBS : myYakScroller.newText((char *)myYakLib.loadToMem("yaklibs.txt"));
strcpy(myYakScroller.title, "yakLibs");
myYakScroller.activate(50,50);
break;
case C_SOUNDS : myYakScroller.newText((char *)myYakLib.loadToMem("sounds.txt"));
strcpy(myYakScroller.title, "Sounds");
myYakScroller.activate(50,50);
break;
case C_PALETTES : myYakScroller.newText((char *)myYakLib.loadToMem("yakpal.txt"));
strcpy(myYakScroller.title, "yakPalettes");
myYakScroller.activate(50,50);
yakPalette demoYakPalette("standard.ypl", &myYakLib);
while (!kbhit())
{
demoYakPalette.rotate(yakPalette::down);
demoYakPalette.put();
}
myYakPalette.put();
break;
case C_FONTS : myYakScroller.newText((char *)myYakLib.loadToMem("fonts1.txt"));
strcpy(myYakScroller.title, "yakFonts");
myYakScroller.activate(50,50);
yakFont demoFont("morning.fnt", &myYakLib);
demoFont.use();
myYakScroller.newText((char *)myYakLib.loadToMem("fonts2.txt"));
myYakScroller.activate(50,50);
myYakFont.use();
break;
case C_SUPPORT : myYakScroller.newText((char *)myYakLib.loadToMem("support.txt"));
strcpy(myYakScroller.title, "Support Programs");
myYakScroller.activate(50,50);
break;
case C_AFTER : myYakScroller.newText((char *)myYakLib.loadToMem("after.txt"));
strcpy(myYakScroller.title, "Afterword");
myYakScroller.activate(50,50);
break;
}
}
mouse.remove();
x_text_mode();
}